GtkLevelBar: implement clipping
authorMatthias Clasen <mclasen@redhat.com>
Fri, 18 Jul 2014 21:47:20 +0000 (17:47 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Fri, 18 Jul 2014 21:47:53 +0000 (17:47 -0400)
So level bars can have shadows, too.

gtk/gtklevelbar.c

index a4ee861f22c600b5f96d59ff6a359c2385869e57..91d848c20035de8a1ff46faab274eb4dfe31047a 100644 (file)
@@ -98,6 +98,7 @@
 #include "gtkstylecontext.h"
 #include "gtktypebuiltins.h"
 #include "gtkwidget.h"
+#include "gtkwidgetprivate.h"
 
 #include <math.h>
 #include <stdlib.h>
@@ -574,6 +575,15 @@ gtk_level_bar_get_preferred_height (GtkWidget *widget,
   *natural = height;
 }
 
+static void
+gtk_level_bar_size_allocate (GtkWidget     *widget,
+                             GtkAllocation *allocation)
+{
+  GTK_WIDGET_CLASS (gtk_level_bar_parent_class)->size_allocate (widget, allocation);
+
+  _gtk_widget_set_simple_clip (widget);
+}
+
 static void
 gtk_level_bar_update_mode_style_classes (GtkLevelBar *self)
 {
@@ -889,6 +899,7 @@ gtk_level_bar_class_init (GtkLevelBarClass *klass)
   oclass->finalize = gtk_level_bar_finalize;
 
   wclass->draw = gtk_level_bar_draw;
+  wclass->size_allocate = gtk_level_bar_size_allocate;
   wclass->get_preferred_width = gtk_level_bar_get_preferred_width;
   wclass->get_preferred_height = gtk_level_bar_get_preferred_height;